package com.jiufen.Controller;


import com.jiufen.Pojo.JobOption;
import com.jiufen.Pojo.Result;
import com.jiufen.Pojo.StudentCountOption;
import com.jiufen.Service.ReportService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@Slf4j
@RestController
@RequestMapping("/report")
public class ReportController {
    @Autowired
    private ReportService reportService;

    /**
     * 统计员工职位人数
     */
    @GetMapping("/empJobData")
    public Result getEmpJobDataReport() {
        log.info("开始统计员工人数！！");
        JobOption jobOption = reportService.getEmpJobDataReport();
        return Result.success(jobOption);
    }

    /**
     * 统计性别数据
     *
     */
    @GetMapping("/empGenderData")
    public Result getEmpGenderDataReport() {
        log.info("开始统计员工性别人数！！");
        List<Map<String,Object>> genderList = reportService.getEmpGenderDataReport();
        return Result.success(genderList);
    }

    /**
     * 5.3 学员学历统计
     * 5.3.1 基本信息
     * 请求路径：/report/studentDegreeData
     * 请求方式：GET
     * 接口描述：统计学员的学历信息
     *
     * 5.3.2 请求参数
     * 无
     */
    @GetMapping("/studentDegreeData")
    public Result getStudentDegreeDataReport() {
        log.info("开始统计学员学历信息！！");
        List<Map<String,Object>> degreeList = reportService.getStudentDegreeDataReport();
        log.debug("学员学历信息={}", degreeList);
        return Result.success(degreeList);
    }

    /**
     * 5.4 班级人数统计
     * 5.4.1 基本信息
     * 请求路径：/report/studentCountData
     * 请求方式：GET
     * 接口描述：统计每一个班级的人数
     *
     * 5.4.2 请求参数
     * 无
     *
     */
    @GetMapping("/studentCountData")
    public Result getStudentCountDataReport() {
        log.info("开始统计班级人数！！");
        StudentCountOption studentCountDataReport = reportService.getStudentCountDataReport();
        log.debug("班级人数信息={}", studentCountDataReport);
        return Result.success(studentCountDataReport);
    }

}
